home *** CD-ROM | disk | FTP | other *** search
/ Mac Format 1994 August / August CD.bin / Shareware / Games / Core War / Battle Programs / contest92 / A09 Buffy□ < prev    next >
Text File  |  1992-12-09  |  5KB  |  128 lines

  1.  
  2. ;Buffy the Vampire Slayer  
  3. ; by Chris Lindensmith
  4. ; ICWS '88
  5. ; for 1992 Tournament            
  6. ; vampiric fast bomber, with bailout to mouse, snake
  7.  
  8. ;With bomber and bail out into mice
  9. BD        EQU       10                  ; HOW FAR AHEAD TO HIT VAMPIRE
  10. BL        EQU       17                  ; HOW MANY TO THROW AT VAMPIRE
  11. PSPACE    EQU       1000                ; PICKET DISTANCE
  12. MPSPACE   EQU       -1000               ; MINUS PICKET DISTANCE
  13. BSTART    EQU       1017                ; START BOMBING AT
  14. WALL      EQU       21                  ; PICKET SIZE
  15. LENGTH    EQU       PSPACE+PSPACE+WALL+WALL-18      ; DON'T BOMB THIS SECTION                             
  16. SPREAD    EQU       61                  ; BOMB INTERVAL
  17. START     JMP       SETPICK1            ; JUMPS TO WHERE THE ACTION                     
  18. ;   
  19. ;         This part looks at where the vampire is telling you to go and 
  20. ;         starts bombing it.
  21. ;                                         18 LINES
  22.  
  23. SLAT      DAT       5         5         ; A slat in the picket fence         
  24. COUNT     DAT                 0         ; count the hammer blows
  25. STAKE     ADD       @LOC1     LOC1      ; put a stake through the heart of
  26.           ADD       @LOC1     LOC1
  27.           ADD       #BD       LOC1      ; HIGHER SPEED
  28.           MOV       #BL       COUNT     ; the vampire-- aim for everything
  29. POUND     MOV       COUNT     <LOC1     ; 15 above or below the storage
  30.           DJN       POUND     COUNT     ; pen for the poor victims
  31.           MOV       #WALL     CNT1      ;    
  32.           MOV       #MPSPACE  LOC1      ; 
  33.           SPL       SNAKE
  34.           JMP                 COPY      ; RUN    
  35. ;
  36. STAKE2    ADD       @LOC2     LOC2      ; need a separate killer for
  37.           ADD       @LOC2     LOC2
  38.           ADD       #BD       LOC2      ; FOR HIGHER SPEED
  39.           MOV       #BL       COUNT     ; each of the pickets
  40. POUND2    MOV       COUNT     <LOC2     ; to avoid double indirection in the
  41.           DJN       POUND2    COUNT     ; pound statements.
  42.           MOV       #WALL     CNT2
  43.           MOV       #PSPACE   LOC2 
  44.           SPL       SNAKE  
  45.           JMP                 COPY      ; 
  46.  
  47. ; Set up the pickets                    22 LINES
  48. CNT1      DAT                 WALL
  49. CNT2      DAT                 WALL
  50. LOC1      DAT                 MPSPACE   ; target for the lower picket
  51. LOC2      DAT                 PSPACE
  52. ;                                        
  53. ;               
  54. SETPICK1  MOV       SLAT      <LOC1     ; setup the lower pickets
  55.           
  56. SETPICK2  MOV       SLAT      <LOC2     ; setup the upper pickets
  57.           DJN       SETPICK1  CNT2
  58.           SPL       START2
  59. CHECK1    MOV       #MPSPACE  LOC1      ; CHECKS THE LOWER PICKET
  60.           MOV       #WALL     CNT1      ; INITIALIZE THE LOOP
  61. CHECK2    MOV       #PSPACE   LOC2      ; CHECKS THE UPPPER PICKET
  62. LOOP1     CMP       <LOC1     SLAT      ; CHECK THE PICKET #1
  63.           JMP                 STAKE     ; PICKETS BEEN HIT
  64. LOOP2     CMP       <LOC2     SLAT      ; CHECK THE PICKET #2
  65.           JMP                 STAKE2    ; PICKETS BEEN HIT
  66.           DJN       LOOP1     CNT1      ; LOOP BACK TO COVER WHOLE PICKET
  67.           JMP                 CHECK1    ; RESTART PICKET CHECK
  68. ;
  69. ;
  70. ;bomb memory                              18 LINES
  71.  
  72. ; This is the vampiric part
  73.  
  74.  
  75. BOMB      DAT       0         #START-BOMB
  76. TRAP      ADD       #-1       VCNT
  77. VCNT      SPL       TRAP      64
  78.           ADD       #-1       BOMB
  79.           SLT       #200      BOMB
  80.           JMP       AHEAD      
  81.           MOV       BOMB      @BOMB
  82. AHEAD     JMN       VCNT      VCNT
  83.           MOV       BOMB      VCNT
  84.           DAT       0         0
  85. ;         THIS THROWS THE JMP BOMBS to the vampire
  86. ;
  87. BOMBA     JMP       @0        BSTART+WALL
  88. START2    MOV       #0        TRAP-BSTART-WALL
  89.           
  90. LOOP      ADD       #SPREAD   BOMBA
  91.           SUB       #SPREAD   TRAP-BSTART-WALL
  92.           SLT       #LENGTH   TRAP-BSTART-WALL
  93.           JMP       LOOP
  94.           MOV       BOMBA     @TRAP-BSTART-WALL
  95.           JMP       LOOP  
  96.      
  97. ;         The pickets have been hit and we've responded as if
  98. ;         it were a vampire.  If it is then we've won, if it's not
  99. ;         then we need to change strategies to small & fast, leaving
  100. ;         the bomber running
  101. ;
  102. ;    TURN MOUSE            13 LINES
  103.  
  104. COPY      MOV       #9        CCNT
  105.           ADD       #1333     CTARG
  106.           MOV       #1        TOP
  107. CLOOP     MOV       <TOP      <CTARG    ; MAKE THE MOVE
  108.           DJN       CLOOP     CCNT      ; DONE COPYING?        
  109. CTARG     SPL       @CTARG    CTARG     ;
  110.           JMP       COPY
  111. CCNT      DAT                 CCNT      ; COPY COUNTER            
  112. TOP       DAT                 #1        ; TOP OF PROGRAM INDICATOR
  113. SNAKE     SPL       2         27
  114.           DJN       SNAKE     SNAKE
  115.           MOV       0         1
  116.           DAT       0         0   
  117.           DAT       0         0
  118.           DAT       0         0 
  119.           DAT       0         0   
  120.           DAT       0         0
  121.           DAT       0         0    
  122. END       END       START
  123.  
  124.